﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыПособийСоциальногоСтрахования
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"81bd1ceb-91a2-4980-9eff-ba28b3aae11a\", \"Представление\":\"Нетрудоспособность\"}")]
		Нетрудоспособность = 0,//По временной нетрудоспособности
		[EnumMember(Value = "{\"Ссылка\":\"42377727-3c8c-4333-84cf-68a3cea2cdf0\", \"Представление\":\"БеременностьРоды\"}")]
		БеременностьРоды = 1,//По беременности и родам
		[EnumMember(Value = "{\"Ссылка\":\"6fae83af-969b-4bce-b1f1-7509139a8bfc\", \"Представление\":\"ПоУходуЗаРебенкомДоПолутораЛет\"}")]
		ПоУходуЗаРебенкомДоПолутораЛет = 2,//По уходу за ребенком до полутора лет
		[EnumMember(Value = "{\"Ссылка\":\"b16e0c5a-d13e-4891-be0f-fdd444b6cc73\", \"Представление\":\"ПриРожденииРебенка\"}")]
		ПриРожденииРебенка = 3,//При рождении ребенка
		[EnumMember(Value = "{\"Ссылка\":\"c377e9ca-8a65-4cf8-984f-68c7cdf7daa1\", \"Представление\":\"ПриПостановкеНаУчетВРанниеСрокиБеременности\"}")]
		ПриПостановкеНаУчетВРанниеСрокиБеременности = 4,//Единовременное пособие женщинам, вставшим на учет в медицинских учреждениях в ранние сроки беременности
		[EnumMember(Value = "{\"Ссылка\":\"6f4a8cc6-6d2b-4ae1-946a-3a5dbb23499e\", \"Представление\":\"ВСвязиСоСмертью\"}")]
		ВСвязиСоСмертью = 5,//Социальное пособие на погребение
		[EnumMember(Value = "{\"Ссылка\":\"609c54d1-4398-4dd9-9824-bb13912f2e18\", \"Представление\":\"ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами\"}")]
		ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами = 6,//Оплата дополнительных выходных дней по уходу за детьми-инвалидами
		[EnumMember(Value = "{\"Ссылка\":\"34d65d60-b1b2-4b26-9536-2105a9682ff2\", \"Представление\":\"НетрудоспособностьНесчастныйСлучай\"}")]
		НетрудоспособностьНесчастныйСлучай = 7,//По временной нетрудоспособности в связи с несчастным случаем на производстве
		[EnumMember(Value = "{\"Ссылка\":\"4245e7ba-c3d4-4265-9f40-4f0d311d194c\", \"Представление\":\"НетрудоспособностьПрофзаболевание\"}")]
		НетрудоспособностьПрофзаболевание = 8,//По временной нетрудоспособности в связи с профзаболеванием
		[EnumMember(Value = "{\"Ссылка\":\"6e5e3490-6e34-4c33-9f60-28af869ea8ad\", \"Представление\":\"ДополнительныйОтпускПослеНесчастныхСлучаев\"}")]
		ДополнительныйОтпускПослеНесчастныхСлучаев = 9,//Оплата дополнительного отпуска для санаторно-курортного лечения застрахованным
	///<summary>
	///С 2007 года работодателями не выплачивается
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"799c1717-33b5-420c-8c72-d66a123de43f\", \"Представление\":\"ПриУсыновленииРебенка\"}")]
		ПриУсыновленииРебенка = 10,//При усыновлении ребенка
	}
	public static partial class ВидыПособийСоциальногоСтрахования_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Нетрудоспособность = new Guid("28baff9e-aab3-1ae1-4980-91a281bd1ceb");//По временной нетрудоспособности
		public static readonly Guid БеременностьРоды = new Guid("a368cf84-a2ce-f0cd-4333-3c8c42377727");//По беременности и родам
		public static readonly Guid ПоУходуЗаРебенкомДоПолутораЛет = new Guid("0975f1b1-9a13-fc8b-4bce-969b6fae83af");//По уходу за ребенком до полутора лет
		public static readonly Guid ПриРожденииРебенка = new Guid("d4fd0fbe-b644-73cc-4891-d13eb16e0c5a");//При рождении ребенка
		public static readonly Guid ПриПостановкеНаУчетВРанниеСрокиБеременности = new Guid("c7684f98-f7cd-a1da-4cf8-8a65c377e9ca");//Единовременное пособие женщинам, вставшим на учет в медицинских учреждениях в ранние сроки беременности
		public static readonly Guid ВСвязиСоСмертью = new Guid("5d3a6a94-23bb-9e49-4ae1-6d2b6f4a8cc6");//Социальное пособие на погребение
		public static readonly Guid ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами = new Guid("13bb2498-2f91-182e-4dd9-4398609c54d1");//Оплата дополнительных выходных дней по уходу за детьми-инвалидами
		public static readonly Guid НетрудоспособностьНесчастныйСлучай = new Guid("05213695-68a9-f22f-4b26-b1b234d65d60");//По временной нетрудоспособности в связи с несчастным случаем на производстве
		public static readonly Guid НетрудоспособностьПрофзаболевание = new Guid("0d4f409f-1d31-4c19-4265-c3d44245e7ba");//По временной нетрудоспособности в связи с профзаболеванием
		public static readonly Guid ДополнительныйОтпускПослеНесчастныхСлучаев = new Guid("af28609f-9e86-ada8-4c33-6e346e5e3490");//Оплата дополнительного отпуска для санаторно-курортного лечения застрахованным
		///<summary>
		///С 2007 года работодателями не выплачивается
		///</summary>
		public static readonly Guid ПриУсыновленииРебенка = new Guid("6ad6728c-3d12-3fe4-420c-33b5799c1717");//При усыновлении ребенка
		public static ВидыПособийСоциальногоСтрахования Получить(this ВидыПособийСоциальногоСтрахования Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыПособийСоциальногоСтрахования Получить(this ВидыПособийСоциальногоСтрахования Значение, Guid Ссылка)
		{
			if(Ссылка == Нетрудоспособность)
			{
				return ВидыПособийСоциальногоСтрахования.Нетрудоспособность;
			}
			else if(Ссылка == БеременностьРоды)
			{
				return ВидыПособийСоциальногоСтрахования.БеременностьРоды;
			}
			else if(Ссылка == ПоУходуЗаРебенкомДоПолутораЛет)
			{
				return ВидыПособийСоциальногоСтрахования.ПоУходуЗаРебенкомДоПолутораЛет;
			}
			else if(Ссылка == ПриРожденииРебенка)
			{
				return ВидыПособийСоциальногоСтрахования.ПриРожденииРебенка;
			}
			else if(Ссылка == ПриПостановкеНаУчетВРанниеСрокиБеременности)
			{
				return ВидыПособийСоциальногоСтрахования.ПриПостановкеНаУчетВРанниеСрокиБеременности;
			}
			else if(Ссылка == ВСвязиСоСмертью)
			{
				return ВидыПособийСоциальногоСтрахования.ВСвязиСоСмертью;
			}
			else if(Ссылка == ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами)
			{
				return ВидыПособийСоциальногоСтрахования.ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами;
			}
			else if(Ссылка == НетрудоспособностьНесчастныйСлучай)
			{
				return ВидыПособийСоциальногоСтрахования.НетрудоспособностьНесчастныйСлучай;
			}
			else if(Ссылка == НетрудоспособностьПрофзаболевание)
			{
				return ВидыПособийСоциальногоСтрахования.НетрудоспособностьПрофзаболевание;
			}
			else if(Ссылка == ДополнительныйОтпускПослеНесчастныхСлучаев)
			{
				return ВидыПособийСоциальногоСтрахования.ДополнительныйОтпускПослеНесчастныхСлучаев;
			}
			else if(Ссылка == ПриУсыновленииРебенка)
			{
				return ВидыПособийСоциальногоСтрахования.ПриУсыновленииРебенка;
			}
			return ВидыПособийСоциальногоСтрахования.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыПособийСоциальногоСтрахования Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыПособийСоциальногоСтрахования Значение)
		{
			switch (Значение)
			{
				case ВидыПособийСоциальногоСтрахования.Нетрудоспособность: return Нетрудоспособность;
				case ВидыПособийСоциальногоСтрахования.БеременностьРоды: return БеременностьРоды;
				case ВидыПособийСоциальногоСтрахования.ПоУходуЗаРебенкомДоПолутораЛет: return ПоУходуЗаРебенкомДоПолутораЛет;
				case ВидыПособийСоциальногоСтрахования.ПриРожденииРебенка: return ПриРожденииРебенка;
				case ВидыПособийСоциальногоСтрахования.ПриПостановкеНаУчетВРанниеСрокиБеременности: return ПриПостановкеНаУчетВРанниеСрокиБеременности;
				case ВидыПособийСоциальногоСтрахования.ВСвязиСоСмертью: return ВСвязиСоСмертью;
				case ВидыПособийСоциальногоСтрахования.ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами: return ДополнительныеВыходныеДниПоУходуЗаДетьмиИнвалидами;
				case ВидыПособийСоциальногоСтрахования.НетрудоспособностьНесчастныйСлучай: return НетрудоспособностьНесчастныйСлучай;
				case ВидыПособийСоциальногоСтрахования.НетрудоспособностьПрофзаболевание: return НетрудоспособностьПрофзаболевание;
				case ВидыПособийСоциальногоСтрахования.ДополнительныйОтпускПослеНесчастныхСлучаев: return ДополнительныйОтпускПослеНесчастныхСлучаев;
				case ВидыПособийСоциальногоСтрахования.ПриУсыновленииРебенка: return ПриУсыновленииРебенка;
			}
			return Guid.Empty;
		}
	}
}